package tzp.taobao.autosale.model;

import java.util.ArrayList;
import java.util.List;

import javax.swing.table.AbstractTableModel;

import tzp.taobao.autosale.util.PropertiesUtil;

import com.taobao.api.model.Item;
import com.taobao.api.model.Trade;

public class ItemsOnSaleTableModel extends AbstractTableModel {

	private List<Item> dataVector = new ArrayList<Item>();

	private String[] nameArray = new String[4];

	public ItemsOnSaleTableModel() {
		initTitle();
	}
	
	public ItemsOnSaleTableModel(List<Item> dataVector){
		this.dataVector = dataVector;
		initTitle();
	}
	private void initTitle() {
		
		nameArray[0] = PropertiesUtil
				.getString("itemsTable.columnModel.title0");
		nameArray[1] = PropertiesUtil
				.getString("itemsTable.columnModel.title1");
		nameArray[2] = PropertiesUtil
				.getString("itemsTable.columnModel.title2");
		nameArray[3] = PropertiesUtil
				.getString("itemsTable.columnModel.title3");
	}

	// make the table uneditable
	@Override
	public boolean isCellEditable(int row, int column) {
		return false;
	}

	public String getColumnName(int column) {
		if (column >= nameArray.length) {
			return "";
		}
		return nameArray[column];
	}

	public int getColumnCount() {
		return nameArray.length;
	}

	public int getRowCount() {
		return this.dataVector.size();
	}

	public Object getValueAt(int rowIndex, int columnIndex) {

		if (rowIndex >= this.dataVector.size()) {
			return "";
		}
		if (columnIndex == 0) {
			return dataVector.get(rowIndex).getIid();
		}
		if (columnIndex == 1) {
			return dataVector.get(rowIndex).getTitle();
		}
		if (columnIndex == 2) {
			return dataVector.get(rowIndex).getNum();
		}
		if (columnIndex == 3) {
			return dataVector.get(rowIndex).getPrice();
		}

		return "";
	}

	public void addItem(Item item) {
		this.dataVector.add(item);
		this.fireTableDataChanged();
	}
	
	public void updateItem(Item item){
		for(Item temp : dataVector){
			if(temp.getIid().equalsIgnoreCase(item.getIid())){
				dataVector.set(dataVector.indexOf(temp), item);
				break;
			}
		}
		this.fireTableDataChanged();
	}
	
	public void deleteItem(int index){
		if(index < 0){
			return;
		}
		this.dataVector.remove(index);
		this.fireTableDataChanged();
	}
	
//	public void updateStatus(String tid, String mesg){
//		for(Trade temp : dataVector){
//			if(temp.getTid().equalsIgnoreCase(tid)){
//				temp.setStatus(mesg);
//				break;
//			}
//		}
//		this.fireTableDataChanged();
//	}

//	public Vector<String> getWaittingBuyer(){
//		
//		for(Trade temp : dataVector){
//			if(temp.getStatus().equalsIgnoreCase("WAIT_SELLER_SEND_GOODS")){
//				return temp.getTid();
//			}
//		}
//		
//		return null;
//	}
	
	public List<Item> getDataVector() {
		return this.dataVector;
	}
	
	public boolean isAutoSale(String iid){
		for(Item item : dataVector){
			if(item.getIid().equalsIgnoreCase(iid)){
				return true;
			}
		}
		return false;
	}
	
	public String getIid(int row){
		Item item =dataVector.get(row);
		return item.getIid();
	}
	
}
